package com.leetcode.蓝桥杯.十二届国赛;

import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

/**
 * 如果一个正整数只有1和它本身两个约数，则称为—个质数(又称素数)。
前几个质数是:
2,3,5,7,11,13,17,19,23,29,31,37,·…·。
如果一个质数的所有十进制数位都是质数，我们称它为纯质数。例如:2,3,5,7,23,37都是纯质数，而
11,13,17,19,29,31不是纯质数。当然1,4,35也不是纯质数。
请问，在1到20210605中，有多少个纯质数?

 * @author LZF
 *
 */
public class 填空题2 {
	static List<Integer> list = Arrays.asList(2,3,5,7);
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int cnt = 0;
		for(int i = 2;i <= 20210605;i++) {
			if(isPurePrime(i)) cnt++;//1903
		}
		System.out.println(cnt);
		input.close();
	}
	public static boolean isPrime(int num) {
		if(num == 1) return false;
		for(int i = 2;i * i <= num;i++) {
			if(num % i == 0) return false;
		}
		return true;
	}
	public static boolean isPurePrime(int num) {
		if(!isPrime(num)) return false;
		while(num > 0) {
			if(!list.contains(num % 10)) return false;
			num /= 10;
		}
		return true;
	}
}
